/**
 * Clase TablaSimbolos
 * @author José Manuel Sánchez Bernabéu
 *         Mercedes Martinez Cortinas
 */



import java.util.HashMap;


public class TablaSimbolos {
    TablaSimbolos padre = null;
    HashMap<String,Simbolo> simbolos = new HashMap<String,Simbolo>();

    public TablaSimbolos(TablaSimbolos padre) {
        this.padre = padre;
    }

    public TablaSimbolos pop() { return padre; }

    public void nuevoSimbolo(String nombre, int tipoSimbolo, int tipo) {
        Simbolo s = new Simbolo(nombre, tipoSimbolo, tipo);
        simbolos.put(nombre, s);
    }
    public void nuevoSimbolo(String nombre, int tipoSimbolo, int tipo,int indice) {
        Simbolo s = new Simbolo(nombre, tipoSimbolo, tipo, indice);
        simbolos.put(nombre, s);
    }

    public Simbolo busca(String nombre) {
        Simbolo s = simbolos.get(nombre);
        if ( s!=null ) {
            s.setEsUsada(true);
            return s;  // encontrado
        }
    // si no lo encuentra, busca en el ámbito exterior
        if ( padre!=null ) {
            return padre.busca(nombre);
        }
        return null; // no se encontró
    }

    public boolean existe(String nombre) {
        Simbolo s = simbolos.get(nombre);
        if(s!=null)
            return true;
        else
            return false;
    }
    
   
            
}
